#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <iostream>

#define N 101000
#define LL long long
#define PF(x) ((x)*(x))
using namespace std;

struct node
{
    double v;
    long long x,y,id;

}Node[N];
long long n,x[N],y[N],a=3;
int cmp(node a,node b)
{
    return a.v<b.v;
}
long long fun(int a,int b)
{
    return PF(Node[a].x-Node[b].x)+PF(Node[a].y-Node[b].y);
}
int main()
{
    cin >> n;
    for(int i=1;i<=n;i++)
    {
        cin >> Node[i].x >> Node[i].y;
        if(i>1){
            Node[i].v=fun(i,1),Node[i].id=i;
        }
    }
    sort(Node+2,Node+n+1,cmp);
    while((Node[1].y-Node[a].y)*(Node[1].x-Node[2].x)==(Node[1].x-Node[a].x)*(Node[1].y-Node[2].y)&&a<n) a++;
     cout << 1 << " " << Node[2].id << " " << Node[a].id << endl;
    return 0;
}
